home *** CD-ROM | disk | FTP | other *** search
- /*
- * NAME: HILBERT
- *
- * DESCRIPTION: CONTROL ROUTINE FOR DRAWING HILBERT CURVES.
- *
- * SYNOPSIS: HILBERT (DEPTH, GRID)
- * INT DEPTH;
- * INT GRID;
- *
- * GLOBALS: NONE.
- *
- * CALLS: A (HILBERT.C)
- *
- * CALLED BY: TEST (TEST.C)
- */
-
- #INCLUDE "LAYERS.H"
-
- STRUCT LAYER *DRAWP;
-
- HILBERT (DEPTH, GRID)
- INT DEPTH; /* DRAW HILBERT CURVES OF ORDERS 1 TO
- DEPTH */
- INT GRID; /* SIZE TO DRAW THEM */
- {
- STRUCT POINT HOME;
- STRUCT POINT OLD;
- STRUCT POINT CUR;
- INT I;
- INT H;
-
- H = GRID;
- HOME.X = H / 2;
- HOME.Y = H / 2;
- FOR (I = 1; I <= DEPTH; I++) {
- H = H / 2;
- HOME.X += (H / 2);
- HOME.Y += (H / 2);
- CUR = OLD = HOME;
- A (I, H, &OLD, &CUR);
- }
- }